Essa base de dados é pública e disponíbilizada para pesquisa. Os detalhes estão disponíveis em P. Cortez, A. Cerdeira, F. Almeida, T. Matos E J. Journey. Modelagem de preferências de vinhos por mineração de dados a partir de propriedades físico-químicas.Nos sistemas de apoio à decisão, Elsevier, 47 (4): 547-553. ISSN: 0167-9236.Disponível em: [@Elsevier] http://dx.doi.org/10.1016/j.dss.2009.05.016 [Pré-imprensa (PDF)] http://www3.dsi.uminho.pt/pcortez/winequality09.pdf [Bib] Http://www3.dsi.uminho.pt/pcortez/dss09.bib
A base de dados tem 6497 observações de vinhos portugueses tintos e brancos. Essas observações são compostas por 11 (onze) variáveis quantitativas continuas contendo valores apurados em testes físico-quimicos a respeito das suas características ou composições, 1 (uma) variável quantitativa continua que poderá ser convertida em categórica ordinal, pois indica a qualidade do vinho baseada em dados sensoriais apurada pela mediana de pelo menos 3 avaliações efetuadas por peritos em vinhos, e esta será a nossa variável ‘target’, e 1 (uma) variável categorica nominal indicando o tipo do vinho (tinto ou branco). O nosso objetivo é através da inferência estatística descobrir se existe alguma correlação entre qualidade do vinho e os valores dos seus atributos. Essa relação causal deverá explicar o porquê um vinho foi considerado melhor ou pior que o outro baseado em suas caracteristicas físico-quimicas.
## 'data.frame': 6497 obs. of 13 variables:
## $ fixedacidity : num 6.6 6.7 10.6 5.4 6.7 6.8 6.6 7.2 5.1 6.2 ...
## $ volatileacidity : num 0.24 0.34 0.31 0.18 0.3 0.5 0.61 0.66 0.26 0.22 ...
## $ citricacid : num 0.35 0.43 0.49 0.24 0.44 0.11 0 0.33 0.33 0.2 ...
## $ residualsugar : num 7.7 1.6 2.2 4.8 18.8 ...
## $ chlorides : num 0.031 0.041 0.063 0.041 0.057 0.075 0.069 0.068 0.027 0.035 ...
## $ freesulfurdioxide : num 36 29 18 30 65 16 4 34 46 58 ...
## $ totalsulfurdioxide: num 135 114 40 113 224 49 8 102 113 184 ...
## $ density : num 0.994 0.99 0.998 0.994 1 ...
## $ pH : num 3.19 3.23 3.14 3.42 3.11 3.36 3.33 3.27 3.35 3.11 ...
## $ sulphates : num 0.37 0.44 0.51 0.4 0.53 0.79 0.37 0.78 0.43 0.53 ...
## $ alcohol : num 10.5 12.6 9.8 9.4 9.1 9.5 10.4 12.8 11.4 9 ...
## $ quality : int 5 6 6 6 5 5 4 6 7 6 ...
## $ Vinho : Factor w/ 2 levels "RED","WHITE": 2 2 1 2 2 1 1 1 2 2 ...
| Atributos | Descrição |
|---|---|
| fixedacidity (Acidez fixa) | a maioria dos ácidos presentes no vinho ou fixos ou não voláteis (não evaporaram prontamente) |
| volatileacidity (Acidez volátil) | a quantidade de ácido acético no vinho, que em níveis muito altos pode levar a um gosto desagradável de vinagre. |
| citricacid (Ácido cítrico) | encontrado em pequenas quantidades, o ácido cítrico pode adicionar “frescura” e sabor aos vinhos. |
| residualsugar (Açúcar residual) | a quantidade de açúcar restante ao término da fermentação, é raro encontrar vinhos com menos de 1 grama / litro. Vinhos com mais de 45 gramas / litro são considerados doces. |
| chlorides (Cloretos) | a quantidade de sal no vinho. |
| freesulfurdioxide (Dióxido de enxofre livre) | a forma livre de SO2 existe em equilíbrio entre o SO2 molecular (como gás dissolvido) e o íon bissulfito; impede o crescimento microbiano e a oxidação do vinho. |
| totalsulfurdioxide (Dióxido de enxofre total) | quantidade de formas livres e encadernadas de S02; em baixas concentrações, o SO2 é quase indetectável no vinho, mas nas concentrações de SO2 livre acima de 50 ppm, o SO2 se torna evidente no nariz e no sabor do vinho. |
| density (Densidade) | a densidade da água é próxima à da água, dependendo do percentual de álcool e teor de açúcar. |
| pH | descreve como o vinho é acídico ou básico numa escala de 0 (muito ácido) a 14 (muito básico); a maioria dos vinhos tem entre 3-4 na escala de pH. |
| sulphates (Sulfatos) | um aditivo de vinho que pode contribuir para os níveis de gás de dióxido de enxofre (S02), que age como um antimicrobiano e antioxidante. |
| alcohol (Álcool) | o teor alcoólico percentual do vinho. |
| quality (Qualidade) | variável de saída (com base em dados sensoriais) que poderiam ser de 0 a 10 sendo zero muito ruim e 10 muito excelente. |
No sumário das variáveis podemos notar alguns atributos com grande aplitude sugerindo a presença de outliers, como por exemplo: o açucar residual, a acidez cítrica, o dióxido de exofre total, o dióxido de enxofre livre, o álcool. Podemos notar que na nossa base de dados temos avaliados muito mais vinhos brancos do que tintos.
## fixedacidity volatileacidity citricacid residualsugar
## Min. : 3.800 Min. :0.0800 Min. :0.0000 Min. : 0.60
## 1st Qu.: 6.400 1st Qu.:0.2300 1st Qu.:0.2500 1st Qu.: 1.80
## Median : 7.000 Median :0.2900 Median :0.3100 Median : 3.00
## Mean : 7.215 Mean :0.3397 Mean :0.3186 Mean : 5.44
## 3rd Qu.: 7.700 3rd Qu.:0.4000 3rd Qu.:0.3900 3rd Qu.: 8.10
## Max. :15.900 Max. :1.5800 Max. :1.6600 Max. :45.80
## chlorides freesulfurdioxide totalsulfurdioxide density
## Min. :0.00900 Min. : 1.00 Min. : 6.0 Min. :0.9871
## 1st Qu.:0.03800 1st Qu.: 17.00 1st Qu.: 77.0 1st Qu.:0.9923
## Median :0.04700 Median : 29.00 Median :118.0 Median :0.9949
## Mean :0.05603 Mean : 30.53 Mean :115.7 Mean :0.9947
## 3rd Qu.:0.06500 3rd Qu.: 41.00 3rd Qu.:156.0 3rd Qu.:0.9970
## Max. :0.61100 Max. :289.00 Max. :440.0 Max. :1.0140
## pH sulphates alcohol quality
## Min. :2.720 Min. :0.2200 Min. : 0.9567 Min. :3.000
## 1st Qu.:3.110 1st Qu.:0.4300 1st Qu.: 9.5000 1st Qu.:5.000
## Median :3.210 Median :0.5100 Median :10.3000 Median :6.000
## Mean :3.219 Mean :0.5313 Mean :10.4862 Mean :5.818
## 3rd Qu.:3.320 3rd Qu.:0.6000 3rd Qu.:11.3000 3rd Qu.:6.000
## Max. :4.010 Max. :2.0000 Max. :14.9000 Max. :9.000
## Vinho
## RED :1599
## WHITE:4898
##
##
##
##
Numa escala de 0 a 10 a menor nota de qualidade obtida foi 3 e a maior nota foi 9.
No atributo qualidade vimos uma distribuição com muito poucos registros considerados excelentes e ruins. A grande maioria dos vinhos foi classificada como normal (nem ruim, nem excelente), digamos, no meio termo da classificação.
##
## RED WHITE
## 3 10 20
## 4 53 163
## 5 681 1457
## 6 638 2198
## 7 199 880
## 8 18 175
## 9 0 5
Os vinhos brancos apresentam notas retativamente melhores do que as notas dos vinhos tintos.
##
## RED WHITE
## 3 0.006253909 0.004083299
## 4 0.033145716 0.033278889
## 5 0.425891182 0.297468354
## 6 0.398999375 0.448754594
## 7 0.124452783 0.179665169
## 8 0.011257036 0.035728869
## 9 0.000000000 0.001020825
Apurando as médias dos atributos dos vinhos, por tipo de vinho, podemos notar que a qualidade, o álcool, a densidade e o PH apresentaram resultados muito próximos, apresentando pouca ou diferença insignificante, sugerindo a possibilidade de existência alguma correlação; entretanto os demais atributos apresentam consideráveis diferenças para suas médias.
Identificamos outliers em todas as variáveis da base.
Para a acidez volátil podemos identificar duas parábolas e outliers. Uma distribuição anormal não condizente por exemplo com a distribuição da qualidade.
Na comparação entre os vinhos tintos e brancos podemos verificar uma certa disparidade na maioria dos atributos exceto para a qualidade e o álcool.
Voltando a tomar como exemplo a acidez volátil e comparando os resultado agora segregados entre tinto e branco podemos verificar que as distribuição segregadas parecem mais normais.
Segregamos a análise por tipo de vinho. Para o vinho branco temos mais observações do que para o vinho tinto. A distribuição das notas de qualidade para o vinho branco tem distribuição semelhante a da amostra consolidada da base. A partir de agora a análise será realizada somente com os dados dos vinhos brancos.
## quality fixedacidity volatileacidity citricacid
## Min. :3.000 Min. : 3.800 Min. :0.0800 Min. :0.0000
## 1st Qu.:5.000 1st Qu.: 6.300 1st Qu.:0.2100 1st Qu.:0.2700
## Median :6.000 Median : 6.800 Median :0.2600 Median :0.3200
## Mean :5.878 Mean : 6.855 Mean :0.2782 Mean :0.3342
## 3rd Qu.:6.000 3rd Qu.: 7.300 3rd Qu.:0.3200 3rd Qu.:0.3900
## Max. :9.000 Max. :14.200 Max. :1.1000 Max. :1.6600
## residualsugar chlorides freesulfurdioxide totalsulfurdioxide
## Min. : 0.600 Min. :0.00900 Min. : 2.00 Min. : 9.0
## 1st Qu.: 1.700 1st Qu.:0.03600 1st Qu.: 23.00 1st Qu.:108.0
## Median : 5.200 Median :0.04300 Median : 34.00 Median :134.0
## Mean : 6.387 Mean :0.04577 Mean : 35.31 Mean :138.4
## 3rd Qu.: 9.900 3rd Qu.:0.05000 3rd Qu.: 46.00 3rd Qu.:167.0
## Max. :45.800 Max. :0.34600 Max. :289.00 Max. :440.0
## density pH sulphates alcohol
## Min. :0.9871 Min. :2.720 Min. :0.2200 Min. : 8.00
## 1st Qu.:0.9917 1st Qu.:3.090 1st Qu.:0.4100 1st Qu.: 9.50
## Median :0.9937 Median :3.180 Median :0.4700 Median :10.40
## Mean :0.9940 Mean :3.188 Mean :0.4898 Mean :10.51
## 3rd Qu.:0.9961 3rd Qu.:3.280 3rd Qu.:0.5500 3rd Qu.:11.40
## Max. :1.0140 Max. :3.820 Max. :1.0800 Max. :14.20
## quality fixedacidity volatileacidity citricacid
## quality 1.000000000 -0.11366283 -0.19472297 -0.009209091
## fixedacidity -0.113662831 1.00000000 -0.02269729 0.289180698
## volatileacidity -0.194722969 -0.02269729 1.00000000 -0.149471811
## citricacid -0.009209091 0.28918070 -0.14947181 1.000000000
## residualsugar -0.098463258 0.08881824 0.05926646 0.093176823
## chlorides -0.209934411 0.02308564 0.07051157 0.114364448
## freesulfurdioxide 0.008158067 -0.04939586 -0.09701194 0.094077221
## totalsulfurdioxide -0.174737218 0.09106976 0.08926050 0.121130798
## density -0.313214730 0.26843806 0.01577901 0.148530582
## pH 0.099427246 -0.42585829 -0.03191537 -0.163748211
## sulphates 0.053677877 -0.01714299 -0.03572815 0.062330940
## alcohol 0.435574715 -0.12088112 0.06771794 -0.075728730
## residualsugar chlorides freesulfurdioxide
## quality -0.09846326 -0.20993441 0.0081580671
## fixedacidity 0.08881824 0.02308564 -0.0493958591
## volatileacidity 0.05926646 0.07051157 -0.0970119393
## citricacid 0.09317682 0.11436445 0.0940772210
## residualsugar 1.00000000 0.08833989 0.3027757258
## chlorides 0.08833989 1.00000000 0.1013923521
## freesulfurdioxide 0.30277573 0.10139235 1.0000000000
## totalsulfurdioxide 0.40421259 0.19891030 0.6155009650
## density 0.83568342 0.25986464 0.3026089630
## pH -0.19675874 -0.09043946 -0.0006177961
## sulphates -0.02829942 0.01676288 0.0592172458
## alcohol -0.45499024 -0.36018871 -0.2501039415
## totalsulfurdioxide density pH
## quality -0.174737218 -0.31321473 0.0994272457
## fixedacidity 0.091069756 0.26843806 -0.4258582910
## volatileacidity 0.089260504 0.01577901 -0.0319153683
## citricacid 0.121130798 0.14853058 -0.1637482114
## residualsugar 0.404212587 0.83568342 -0.1967587402
## chlorides 0.198910300 0.25986464 -0.0904394560
## freesulfurdioxide 0.615500965 0.30260896 -0.0006177961
## totalsulfurdioxide 1.000000000 0.53909148 0.0023209718
## density 0.539091482 1.00000000 -0.0976985163
## pH 0.002320972 -0.09769852 1.0000000000
## sulphates 0.134562367 0.07286189 0.1559514973
## alcohol -0.448892102 -0.79667757 0.1214320987
## sulphates alcohol
## quality 0.05367788 0.43557472
## fixedacidity -0.01714299 -0.12088112
## volatileacidity -0.03572815 0.06771794
## citricacid 0.06233094 -0.07572873
## residualsugar -0.02829942 -0.45499024
## chlorides 0.01676288 -0.36018871
## freesulfurdioxide 0.05921725 -0.25010394
## totalsulfurdioxide 0.13456237 -0.44889210
## density 0.07286189 -0.79667757
## pH 0.15595150 0.12143210
## sulphates 1.00000000 -0.01743277
## alcohol -0.01743277 1.00000000
Para melhorar a performance preditiva promoveremos a redução de dimensionalidade. Analisando os componentes principais será descartada a variável “residualsugar” devido a sua alta correlação com a variável “density” e a sua menor variância, assim como, será descartada a variável “freesulfurdioxide” devido a sua alta correlação com a variável “totalsulfurdioxide” e sua menor variância ao descartar os outliers.
Como o interesse da análise é descobrir sobre as características dos vinhos bons e ruins, vamos filtar para construção do modelo somente as observações dos vinhos que tiveram notas menores que 5 e maiores que 7; de acordo com essas notas passemos a considerar dois grupos, ruins e bons respectivamente.
Após essas limpezas, processamentos e transformações dos dados da base podemos verificar que a distribuição da população é assimétrica positiva sendo a concentração da frequência mais alta à esquerda da média. A maioria das váriáveis possuem curvas mais achatadas, pois possuem frequências mais concentradas, homogêneas (leptocúrticas), exceto para 3 variáveis que apresentam maiores dispersões, heterogêneas (platicúrticas).
A regressão linear relaciona uma variável dependente, que no nosso caso será a variável quality, com as variáveis que a explicam, chamadas variáveis independentes, que no nosso caso vamos considerar: alcohol, density, volatileacidity e fixedacidity.
É utilizado o método dos mínimos quadrados onde se minimiza a soma de quadrados dos desvios dos pontos sobre uma reta ajustada. A reta é traçada obtém a menor distâncias diferença entre os pontos.
Aplicando a regressão linear considerando as variáveis supra podemos constatar correlação moderada, chegando 41,43% para o R2 ajustado.
##
## Call:
## lm(formula = quality ~ alcohol + density + volatileacidity +
## fixedacidity, data = white_rmoutliers)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1837 -1.2574 0.1744 1.0735 3.6573
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -230.94978 56.29271 -4.103 5.06e-05 ***
## alcohol 1.13546 0.10840 10.475 < 2e-16 ***
## density 229.67483 55.96005 4.104 5.03e-05 ***
## volatileacidity -4.48708 0.55781 -8.044 1.29e-14 ***
## fixedacidity -0.31101 0.09147 -3.400 0.00075 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.597 on 358 degrees of freedom
## Multiple R-squared: 0.4208, Adjusted R-squared: 0.4143
## F-statistic: 65.01 on 4 and 358 DF, p-value: < 2.2e-16
Podemos dizer que os resíduos do modelo não são simétricos, mas possuem uma distribuição normal. No gráfico abaixo podemos verificar que os residuos se distribuem aleatoriamente em torno de zero ao longo da reta, portanto podemos afirmar que o modelo de regressão está adequado.
Analisamos os residuos e identificamos possíveis outliers. Vamos eliminar as observações cujos resíduos estiverem acima de 2 e abaixo de -2.
O segundo modelo de regressão linear produzido conta com o R2 ajustado de 75,48%; um modelo indicando uma boa correlação.
## The following objects are masked from white_rmoutliers:
##
## alcohol, chlorides, citricacid, density, fixedacidity, pH,
## quality, sulphates, totalsulfurdioxide, volatileacidity
## The following objects are masked from Vinhos:
##
## alcohol, chlorides, citricacid, density, fixedacidity, pH,
## quality, sulphates, totalsulfurdioxide, volatileacidity
##
## Call:
## lm(formula = quality ~ alcohol + density + volatileacidity +
## fixedacidity, data = white_sresiduos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.82497 -0.76094 0.00338 0.74033 2.27061
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -205.25092 42.53850 -4.825 2.29e-06 ***
## alcohol 1.38239 0.07579 18.239 < 2e-16 ***
## density 201.26283 42.35284 4.752 3.20e-06 ***
## volatileacidity -3.84701 0.39562 -9.724 < 2e-16 ***
## fixedacidity -0.35582 0.06419 -5.543 6.79e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.013 on 284 degrees of freedom
## Multiple R-squared: 0.7582, Adjusted R-squared: 0.7548
## F-statistic: 222.6 on 4 and 284 DF, p-value: < 2.2e-16
Avaliando a raiz do erro médio quadrático (RMSE) pudemos verificar que o primeiro modelo apresentou um resultado melhor para o modelo preditivo.
## [1] "RMSE de predição do Primeiro Modelo de amostra obtida da base de vinhos brancos:0.997393304132405"
## [1] "RMSE de predição do Segundo Modelo de amostra obtida da base de vinhos brancos:1.21541893081073"
A árvore de regressao é formada por nós de decisão onde cada nó representa uma regra, para a base de qualidade de vinhos o algoritmo estabeleceu como variável mais significativa o alcohol seguido por density, volatileacidity, chlorides, totalsulfurdioxide, fixedacidity, pH, sulphates e citricacid. A predição acontece percorrendo o caminho, até chegar a folha, que é o valor predito na regressão.
Vamos realizar uma poda avaliando o melhor ponto entre a relação da validação cruzada e complexidade da árvore para gerar uma árvore diminuta e que possa simplificar o modelo e generalizá-lo para melhorar a capacidade preditiva com a diminuição de erros. Uma árvore com 14 sub-árvores parece o ponto de otimização do modelo.
## CP nsplit rel error xerror xstd
## 1 0.29404555 0 1.0000000 1.0075727 0.01508086
## 2 0.15926220 1 0.7059544 0.7688072 0.04961190
## 3 0.06558590 2 0.5466923 0.6741737 0.05642764
## 4 0.05494498 3 0.4811064 0.6206131 0.06025885
## 5 0.02893378 4 0.4261614 0.5623281 0.05833010
## 6 0.02492550 7 0.3393600 0.5383972 0.06096538
## 7 0.01778430 9 0.2895090 0.5185875 0.06098656
## 8 0.01727710 10 0.2717247 0.5389252 0.06478868
## 9 0.01609095 11 0.2544476 0.5564096 0.06705380
## 10 0.01375691 14 0.2061748 0.5710348 0.06968013
Avaliando a raiz do erro médio quadrático (RMSE) pudemos verificar que modelo apresentou um resultado melhor para explicar os dados que geraram o modelo, apresenta baixo poder preditivo.
## [1] "RMSE de predição dos dados que geraram o modelo :0.946047520985334"
## [1] "RMSE de predição de amostra obtida da base de vinhos brancos:1.69787873152964"
O modelo de regressão linear apresentou melhor capacidade preditiva enquanto a árvore de regressão consegue melhor desempenho para explicar a váriável que gerou o modelo do que capacidade de preditiva.
| Árvore de Regressao | Regressão Linear | |
|---|---|---|
| Predição dos Dados que Geraram o Modelo | 0.9460475 | 2.4597897 |
| Predição de Amostra Aleatória Obtida da Base de Vinhos Brancos | 1.6978787 | 0.9973933 |
O modelo mais indicado para predição de resultados de qualidade é a regressão linear.